<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
</html>
<script>
   // 解构赋值是 es6 新增的，一般解构赋值分为两部分，一个是数组的解构赋值 一个是 对象的解构赋值，数组的解构赋值只和索引有关系，对象的解构赋值只和属性名有关系。

//    let [b,a,c] = [1,2,3];
//    console.log(a,b,c);
//    let { age,name } = {name:'张三',age:20};
//    console.log(name,age);



// 箭头函数是es6 新增的。他最大特点不固话this指向。
 // 第一个 箭头函数，没有 arguments,使用 剩余参数来获取 传入的不确定参数
 // 第二点区别 箭头函数，不能被 new 关键字实例化
 // 第三点区别，箭头函数不固话this指向，this指向只和声明箭头函数的作用域有关系
//  function fn () { // 在普通函数里面 一般使用 arguments 来获取不确定参数
//    console.log(arguments);
//  }
//  fn(1,2,3,4,5);
//  let ftn = (...val) => {
//     console.log(val);
//  }
//  ftn(1,2,3,4,5);



// function Start(){

// }
// new Start();

// let Start = () => {

// }
// new Start();

// let obj = {
//   name: '王麻子',
//   sing: function () { // 在普通函数里面this指向的是 当前调用函数的对象
//     console.log(this);
//     setTimeout(() => { // setTimeout this 指向的是 Window 
//       console.log(this);
//     })
//   }
// }

// obj.sing();



// var let const 
// var 有变量提升，let const 没有
// var 没有块级作用域 ，let const 有
// console.log(a); // 也叫暂时性死区
// let a = 10;

// if (true){
//   let a = 20;
// //   console.log(a)
// }
// console.log(a)



for(let i=0;i<10;i++){
    setTimeout(() => {
      console.log(i);
    })
}
</script>